home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / SAMPLES.BIN / LoanCalc.java < prev    next >
Encoding:
Java Source  |  1996-12-07  |  3.7 KB  |  117 lines

  1. /*
  2.     A basic extension of the java.awt.Frame class
  3.  */
  4.  
  5. import java.awt.*;
  6.  
  7. public class LoanCalc extends Frame {
  8.     void CalcButton_Clicked(Event event) {
  9.         // to do: place event handler code here.
  10.  
  11.         double Principal, InterestRate, LengthLoan, MonthlyPay, IntDec, NumMonths;
  12.  
  13.         try {
  14.             Principal    = ( Double.valueOf(PrincipalField.getText()   ) ).doubleValue();
  15.             InterestRate = ( Double.valueOf(InterestRateField.getText()) ).doubleValue();
  16.             LengthLoan   = ( Double.valueOf(LengthLoanField.getText()  ) ).doubleValue();
  17.         } catch (NumberFormatException e) {return;}
  18.  
  19.         if (Principal < 0 || InterestRate < 0 || LengthLoan < 0) return;
  20.  
  21.         IntDec     = InterestRate / (12.0 * 100.0);
  22.         NumMonths  = LengthLoan * 12.0;
  23.         MonthlyPay = Principal * (IntDec / (1.0 - Math.pow((1.0 + IntDec), -NumMonths)));
  24.  
  25.         MonthlyPayField.setText(String.valueOf(MonthlyPay));
  26.     }
  27.  
  28.  
  29.     public LoanCalc() {
  30.  
  31.         //{{INIT_CONTROLS
  32.         setLayout(null);
  33.         addNotify();
  34.         resize(insets().left + insets().right + 395,insets().top + insets().bottom + 248);
  35.         keyPressManagerPanel1 = new symantec.itools.awt.KeyPressManagerPanel();
  36.         keyPressManagerPanel1.setLayout(null);
  37.         keyPressManagerPanel1.reshape(insets().left + 0,insets().top + 0,395,248);
  38.         add(keyPressManagerPanel1);
  39.         keyPressManagerPanel1.setAutoTabState(true);
  40.         label1 = new java.awt.Label("Principle =");
  41.         label1.reshape(15,33,105,16);
  42.         keyPressManagerPanel1.add(label1);
  43.         PrincipalField = new java.awt.TextField(8);
  44.         PrincipalField.reshape(192,29,72,20);
  45.         keyPressManagerPanel1.add(PrincipalField);
  46.         label2 = new java.awt.Label("Interest Rate =");
  47.         label2.reshape(15,67,117,18);
  48.         keyPressManagerPanel1.add(label2);
  49.         InterestRateField = new java.awt.TextField(8);
  50.         InterestRateField.reshape(192,68,72,20);
  51.         keyPressManagerPanel1.add(InterestRateField);
  52.         label3 = new java.awt.Label("Length of Loan (years) =");
  53.         label3.reshape(15,106,159,18);
  54.         keyPressManagerPanel1.add(label3);
  55.         LengthLoanField = new java.awt.TextField(8);
  56.         LengthLoanField.reshape(192,106,72,20);
  57.         keyPressManagerPanel1.add(LengthLoanField);
  58.         label4 = new java.awt.Label("Monthly Payment =");
  59.         label4.reshape(15,145,141,18);
  60.         keyPressManagerPanel1.add(label4);
  61.         MonthlyPayField = new java.awt.TextField(8);
  62.         MonthlyPayField.setEditable(false);
  63.         MonthlyPayField.disable();
  64.         MonthlyPayField.reshape(192,145,72,20);
  65.         MonthlyPayField.setBackground(Color.lightGray);
  66.         keyPressManagerPanel1.add(MonthlyPayField);
  67.         CalcButton = new java.awt.Button("Calculate");
  68.         CalcButton.reshape(288,102,84,25);
  69.         keyPressManagerPanel1.add(CalcButton);
  70.         setTitle("Loan Calculations");
  71.         setResizable(false);
  72.         //}}
  73.  
  74.         PrincipalField.requestFocus();
  75.  
  76.         //{{INIT_MENUS
  77.         //}}
  78.     }
  79.  
  80.     public LoanCalc(String title) {
  81.         this();
  82.         setTitle(title);
  83.     }
  84.  
  85.     public synchronized void show() {
  86.         move(50, 50);
  87.         super.show();
  88.     }
  89.  
  90.     public boolean handleEvent(Event event) {
  91.         if (event.id == Event.WINDOW_DESTROY) {
  92.             hide();         // hide the Frame
  93.             return true;
  94.         }
  95.         if (event.target == CalcButton && event.id == Event.ACTION_EVENT) {
  96.             CalcButton_Clicked(event);
  97.         }
  98.         return super.handleEvent(event);
  99.     }
  100.  
  101.     //{{DECLARE_CONTROLS
  102.     symantec.itools.awt.KeyPressManagerPanel keyPressManagerPanel1;
  103.     java.awt.Label label1;
  104.     java.awt.TextField PrincipalField;
  105.     java.awt.Label label2;
  106.     java.awt.TextField InterestRateField;
  107.     java.awt.Label label3;
  108.     java.awt.TextField LengthLoanField;
  109.     java.awt.Label label4;
  110.     java.awt.TextField MonthlyPayField;
  111.     java.awt.Button CalcButton;
  112.     //}}
  113.  
  114.     //{{DECLARE_MENUS
  115.     //}}
  116. }
  117.